//用户管理模块的接口
import request from '@/utils/request'
import type { UserResponseData, User, AllRoleResponseData, SetRoleData } from './type'

enum API {
  //获取全部用户账号信息
  ALLUSER_URL = '/admin/acl/user/',
  //新增用户
  ADDUSER_URL = '/admin/acl/user/save',
  //修改用户
  UPDATEUSER_URL = '/admin/acl/user/update',
  // 获取一个账号的所有角色列表
  ALLROLE_URL = '/admin/acl/user/toAssign/',
  //给用户分配角色
  SETROLE_URL = '/admin/acl/user/doAssignRole',
  //删除某一个账号
  DELETEUSER_URL = '/admin/acl/user/remove/',
  //批量删除用户
  DELETEALLUSER_URL = '/admin/acl/user/batchRemove'
}

export const reqUsersInfo = (page: number, limit: number, username: string) =>
  request.get<any, UserResponseData>(API.ALLUSER_URL + `${page}/${limit}?username=${username}`)

//添加用户与更新已有用户的接口
export const reqAddOrUpdateUser = (data: User) => {
  if (data.id) {
    return request.put<any, any>(API.UPDATEUSER_URL, data)
  } else {
    return request.post<any, any>(API.ADDUSER_URL, data)
  }
}

// 获取一个账号的所有角色列表
export const reqAllRole = (userId: number) =>
  request.get<any, AllRoleResponseData>(API.ALLROLE_URL + userId)

//给用户分配角色
export const reqSetUserRole = (data: SetRoleData) => request.post<any, any>(API.SETROLE_URL, data)

//删除某一个账号
export const reqRemoveUser = (userId: number) =>
  request.delete<any, any>(API.DELETEUSER_URL + userId)

//批量删除用户
export const reqBatchUser = (idList: number[]) =>
  request.delete<any, any>(API.DELETEALLUSER_URL, { data: idList })
